package com.wayne.blog.common;

import lombok.Data;

/**
 * 统一响应对象
 * @author Lang
 * @since 2024/06/06
 */
@Data
public class Ret<T> {
    /**
     * 状态码
     */
    private Integer code;
    
    /**
     * 响应消息
     */
    private String message;
    
    /**
     * 响应数据
     */
    private T data;

    /**
     * 成功响应（无数据）
     */
    public static <T> Ret<T> success() {
        return success(null);
    }

    /**
     * 成功响应（有数据）
     */
    public static <T> Ret<T> success(T data) {
        Ret<T> ret = new Ret<>();
        ret.setCode(200);
        ret.setMessage("操作成功");
        ret.setData(data);
        return ret;
    }

    /**
     * 错误响应（默认状态码500）
     */
    public static <T> Ret<T> error(String message) {
        return error(500, message);
    }

    /**
     * 错误响应（自定义状态码）
     */
    public static <T> Ret<T> error(Integer code, String message) {
        Ret<T> ret = new Ret<>();
        ret.setCode(code);
        ret.setMessage(message);
        return ret;
    }
} 